import html2Canvas from "html2canvas";
import jsPDF from "jspdf";

const htmlToPdf = {
  async getPdf(title, id) {
    try {
      const element = document.querySelector(id);
      const pages = element.querySelectorAll('.pdf-page');
      const pdf = new jsPDF('p', 'pt', 'a4');
      
      // 等待所有页面渲染完成
      const promises = Array.from(pages).map(async (page, index) => {
        const canvas = await html2Canvas(page, {
          allowTaint: true,
          useCORS: true,
          logging: false,
          scale: 2,
          width: 793,
          height: 1122,
          windowWidth: 793,
          windowHeight: 1122,
        });

        // 如果不是第一页，添加新页
        if (index > 0) {
          pdf.addPage();
        }

        // 将canvas转为图片
        const imgData = canvas.toDataURL('image/jpeg', 1.0);
        
        // 添加图片到PDF
        pdf.addImage(
          imgData,
          'JPEG',
          0,
          0,
          595.28,
          841.89,
          '',
          'FAST'
        );

        return true;
      });

      // 等待所有页面处理完成后保存
     // 等待所有页面处理完成后保存
     await Promise.all(promises);
      
     // 如果传入了title，就保存文件
    //  if (title) {
    //    pdf.save(title + '.pdf');
    //  }
     
     // 返回blob数据
     return pdf.output('blob');

    } catch (error) {
      console.error('PDF生成错误:', error);
    }
  }
};

export default htmlToPdf;

